Repository navigation
perf(app): optimize network requests, bound caches, and trim memos - #180
Merged
wgordon17 merged 4 commits intoNov 2, 2026
Merged
Conversation
Use conditional cachedRequest calls in fetchWorkflowRunById and delete cache entries on terminal status, skip status-badge re-renders on 304 unless recovering from consecutive failures, deduplicate mount and post-refresh Jira fetches within 20s, and request right-sized lazy GitHub avatars.
Project cached workflow run list entries under runs2: (old fat runs: entries age out via the 24h eviction), schedule hourly stale-entry eviction and repo-deselection prefix eviction in App, clean up TrackedTab itemRefs on unmount, cap notification seen-ID sets at 20,000 entries with LRU eviction, and split customTabData so exclusiveOwnership does not recompute on built-in tab switches.
Use IDBKeyRange.bound in evictKeysWithPrefix, project single-run cache entries via projectSingleRun, delete run: entries on completed and waiting status with best-effort error handling, evict run: prefixes on repo deselection, refresh fetchedAt hourly on 304 for unbounded entries, and reset Jira dedupe on errors/manual refresh while rerunning on in-flight scope changes.
Skip trackApiCall when info.status === 304 while still syncing resetAt so Settings API Usage matches actual GitHub rate-limit consumption, clear jiraLoading if a pending scope-change rerun finds jiraClient() is null, and update stale Events-poll ETag claims in docs/USER_GUIDE.md.
wgordon17
force-pushed
the
feat/site-modernization-pr4
branch
from
November 2, 2026 18:05
555ebdc to
421b3af
Compare
wgordon17
marked this pull request as ready for review
November 2, 2026 21:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cachedRequestcalls with projected payloads for hot-poll workflow run checks (run:<owner>/<repo>:<id>, deleting cache entries on terminalcompletedorwaitingstatus; empirically verified live thatGET /repos/{owner}/{repo}/actions/runs/{run_id}returns304 Not ModifiedwithX-RateLimit-Remainingunchanged while in-flight and returns200 OKwith a newETagon state transition), skiptrackApiCallon304while still syncingresetAt, skip status-badge re-renders on304unless recovering from consecutive failures, deduplicate initial Jira load fetches within 20s while preserving error retries, manual refreshes, and in-flight scope changes, and request right-sized (40px/56px) lazy-decoded GitHub avatarsruns2:keys to strip unused repository/actor payload fields, refreshfetchedAthourly on304for unbounded entries, and schedule hourly stale-entry eviction plusIDBKeyRange.boundprefix eviction when repositories are deselectedTrackedTabon row disposal, cap notification seen-ID sets at 20,000 entries with two-pass LRU eviction, and splitcustomTabDatasoexclusiveOwnershipdoes not recompute on tab switches